package ucla.axelia.controlador.servicios;

import java.util.List;
import java.util.Map;

import org.hibernate.Query;
import org.hibernate.Session;

import ucla.axelia.controlador.interfaces.IServicioAdministracionContenedorBusquedaReconocimientoVoluntarios;
import ucla.axelia.modelo.dao.ServicioReconocimientoVoluntarioDAO;
import ucla.axelia.modelo.data.DataGenerica;
import ucla.axelia.modelo.data.ReconocimientoVoluntario;

public class ServicioAdministracionContenedorBusquedaReconocimientoVoluntarios implements
		IServicioAdministracionContenedorBusquedaReconocimientoVoluntarios {

	private ServicioReconocimientoVoluntarioDAO servicioReconocimientoVoluntarioDAO;
	
	public List<ReconocimientoVoluntario> buscarReconocimientoVoluntarioPorCriterios(Map<String, Object> criterios) {
		Session session = this.servicioReconocimientoVoluntarioDAO.getSessionFactory().getCurrentSession();	
		String sentencia = "select reconocimientoVoluntario " +
						   "from ReconocimientoVoluntario reconocimientoVoluntario " +
						   "where reconocimientoVoluntario.estado = :estado ";
		for (String key : criterios.keySet()) {			
			sentencia += "and reconocimientoVoluntario." + key + " like '%" + criterios.get(key).toString() + "%' ";
		}
		sentencia += "order by cast(reconocimientoVoluntario.idReconocimientoVoluntario as integer)";		  			 
		Query qry = session.createQuery(sentencia);	
		qry.setString("estado", DataGenerica.DATA_ACTIVO);	
		List<ReconocimientoVoluntario> reconocimientosVoluntarios = qry.list();
		for (ReconocimientoVoluntario reconocimientoVoluntario : reconocimientosVoluntarios)
			reconocimientoVoluntario.getVoluntario().getAsistenciaVoluntarios().size();
		return reconocimientosVoluntarios;
	}

	public ServicioReconocimientoVoluntarioDAO getServicioReconocimientoVoluntarioDAO() {
		return servicioReconocimientoVoluntarioDAO;
	}

	public void setServicioReconocimientoVoluntarioDAO(
			ServicioReconocimientoVoluntarioDAO servicioReconocimientoVoluntarioDAO) {
		this.servicioReconocimientoVoluntarioDAO = servicioReconocimientoVoluntarioDAO;
	}


}
